package br.edu.infnet.dto;

import java.io.Serializable;

import javax.persistence.*;

import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;

import br.edu.infnet.model.Movimento;

import java.sql.Timestamp;
import java.math.BigDecimal;


/**
 * The persistent class for the movimento database table.
 * 
 */
public class MovimentoDTO implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="PK_MOVIMENTO")
	private int pkMovimento;

	private String authcode;

	@Column(name="FK_OPERACAO")
	private int fkOperacao;

	@Column(name="TS_MOVIMENTO")
	private Timestamp tsMovimento;

	@Column(name="VLR_OPERACAO")
	private BigDecimal vlrOperacao;

	private ContaDTO conta;

	public MovimentoDTO() {
		
		conta = new ContaDTO();
		
	}

	public int getPkMovimento() {
		return this.pkMovimento;
	}

	public void setPkMovimento(int pkMovimento) {
		this.pkMovimento = pkMovimento;
	}

	public String getAuthcode() {
		return this.authcode;
	}

	public void setAuthcode(String authcode) {
		this.authcode = authcode;
	}

	public int getFkOperacao() {
		return this.fkOperacao;
	}

	public void setFkOperacao(int fkOperacao) {
		this.fkOperacao = fkOperacao;
	}

	public Timestamp getTsMovimento() {
		return this.tsMovimento;
	}

	public void setTsMovimento(Timestamp tsMovimento) {
		this.tsMovimento = tsMovimento;
	}

	public BigDecimal getVlrOperacao() {
		return this.vlrOperacao;
	}

	public void setVlrOperacao(BigDecimal vlrOperacao) {
		this.vlrOperacao = vlrOperacao;
	}

	public ContaDTO getConta() {
		return this.conta;
	}

	public void setConta(ContaDTO conta) {
		this.conta = conta;
	}
	
	public Movimento toEntity() {
		Movimento dto = new Movimento();
		
		/*Mapper mapper = new DozerBeanMapper();
        entity = mapper.map(this, Movimento.class);*/
		
		dto.setAuthcode(authcode);
		dto.setConta(conta.toEntity());
		dto.setFkOperacao(fkOperacao);
		dto.setPkMovimento(pkMovimento);
		dto.setTsMovimento(tsMovimento);
		dto.setVlrOperacao(vlrOperacao);
        
        return dto;
	}


}